/**
 * 工具层
 *      功能：包含一些通用的数据处理函数
 */


/* string convert to decimal array */
function StrToDecArray(str) {
    var obj = {
        '0': 48,
        '1': 49,
        '2': 50,
        '3': 51,
        '4': 52,
        '5': 53,
        '6': 54,
        '7': 55,
        '8': 56,
        '9': 57,
    }
    return str.split('').map(function (i) {
        if (obj[i]) {
            return obj[i]
        }
        return i.charCodeAt()
    })
}

/**
     * 函数名：Change2Bytes
     * 描述：将长度转化为两个字节
     * 输入：num:十进制数
     * 返回值：HexLength:数组,两个字节,[0]高位,[1]低位
     */
var Change2Bytes = function (num) {
    var HexLength = [];
    HexLength[0] = (num & 0xff00) >> 8; //高位
    HexLength[1] = num & 0xff;          //低位
    return HexLength;
}

/* 比较两个数组是否一致，一致返回0，不一致返回1 */
function compareArr(arr1, arr2) {
    var len1 = arr1.length;
    var len2 = arr2.length;
    if (len1 != len2) {
        return 1;
    }
    for (var i = 0; i < len1; i++) {
        if (arr1[i] != arr2[i]) {
            return 1;
        }
    }
    return 0;
}

/* array convert to  string */
function ArrayToString(fileData) {
    var dataString = "";
    for (var i = 0; i < fileData.length; i++) {
        dataString += String.fromCharCode(fileData[i]);
    }
    return dataString;
}

module.exports = {
    StrToDecArray: StrToDecArray,
    Change2Bytes: Change2Bytes,
    compareArr: compareArr,
    ArrayToString: ArrayToString
}